'''
Created on 23 dec 2013

@author: Michael Duo Ling
'''

ENUM_MAX = 0

class RE_TYPE:
    '''
    Resource Element Type: used to mark each RE which PHY signal/channel is using this one.
    '''
    global ENUM_MAX
    size = 9
    AVAILABLE, CSRS_PORT0, CSRS_PORT1, CSRS_PORT2, CSRS_PORT3, CSRS_PORT4, CSRS_PORT5, CSRS_PORT6, CSRS_PORT7 = range(ENUM_MAX, ENUM_MAX+size)
    ENUM_MAX += size

class SF_TYPE:
    '''
    enum class for subframe type
    '''
    global ENUM_MAX
    size = 3
    D, U, S = range(ENUM_MAX, ENUM_MAX+size)
    ENUM_MAX += size

class CP_TYPE:
    '''
    Cyclic Prefix Type
    '''
    global ENUM_MAX
    size = 2
    NORMAL, EXTENDED = range(ENUM_MAX, ENUM_MAX+size)
    ENUM_MAX += size

class DELTA_F:
    '''
    delta_f, 15 kHz or 7.5 kHz.
    '''
    global ENUM_MAX
    size = 2
    KHZ_7_5, KHZ_15 = range(ENUM_MAX, ENUM_MAX+size)
    ENUM_MAX += size

class BW:
    '''
    Up-link or down-link BandWidth
    '''
    global ENUM_MAX
    size = 6
    N6, N15, N25, N50, N75, N100 = range(ENUM_MAX, ENUM_MAX+size)
    ENUM_MAX += size
    @staticmethod
    def toReNumber(bw, cpType, delta_f):
        '''
        Calculate number of sub-carriers for the whole bandwidth.
        '''
        return BW.toRbNumber(bw) * BW.calc__N_RB_sc(cpType, delta_f)
    @staticmethod
    def toRbNumber(bw):
        '''
        Calculate number of Resource Blocks from given band-width.
        '''
        return (6,15,25,50,75,100)[bw-BW.N6]
    @staticmethod
    def calc__N_RB_sc(cpType, delta_f):
        '''
        Calculate number of sub-carriers for one Resource Block, according to table 6.2.3-1 in 36.211.
        '''
        if delta_f == DELTA_F.KHZ_15:
            return 12
        elif delta_f == DELTA_F.KHZ_7_5:
            return 24
        raise Exception("Unknown delta_f={0}".format(delta_f))

class DUPLEX_MODE:
    '''
    enum class for duplex mode
    '''
    global ENUM_MAX
    size = 2
    FDD, TDD = range(ENUM_MAX, ENUM_MAX+size)
    ENUM_MAX += size

class SUBFRAME_ASSIGNMENT:
    '''
    enum class for TDD subframe assignment
    '''
    global ENUM_MAX
    size = 7
    SA0, SA1, SA2, SA3, SA4, SA5, SA6 = range(ENUM_MAX, ENUM_MAX+size)
    ENUM_MAX += size

class ANTENNA_PORTS_COUNT:
    '''
    '''
    global ENUM_MAX
    size = 4
    AN1, AN2, AN4, SPARE1 = range(ENUM_MAX, ENUM_MAX+size)
    ENUM_MAX += size

class PHICH_DURATION:
    '''
    '''
    global ENUM_MAX
    size = 2
    NORMAL, EXTENDED = range(ENUM_MAX, ENUM_MAX+size)
    ENUM_MAX += size

class PHICH_RESOURCE:
    '''
    '''
    global ENUM_MAX
    size = 4
    ONE_SIXTH, HALF, ONE, TWO = range(ENUM_MAX, ENUM_MAX+size)
    ENUM_MAX += size

class SPECIAL_SUBFRAME_PATTERNS:
    '''
    '''
    global ENUM_MAX
    size = 9
    SSP0, SSP1, SSP2, SSP3, SSP4, SSP5, SSP6, SSP7, SSP8 = range(ENUM_MAX, ENUM_MAX+size)
    ENUM_MAX += size

class TRANSMISSION_MODE:
    '''
    '''
    global ENUM_MAX
    size = 8
    TM1, TM2, TM3, TM4, TM5, TM6, TM7, TM8_V920 = range(ENUM_MAX, ENUM_MAX+size)
    ENUM_MAX += size

class N_SB:
    '''
    '''
    global ENUM_MAX
    size = 4
    ONE, TWO, THREE, FOUR = range(ENUM_MAX, ENUM_MAX+size)
    ENUM_MAX += size

class HOPPING_MODE:
    '''
    '''
    global ENUM_MAX
    size = 2
    INTER_SUBFRAME, INTRA_AND_INTER_SUBFRAME = range(ENUM_MAX, ENUM_MAX+size)
    ENUM_MAX += size

class PUSCH_HOPPING_OFFSET:
    '''
    '''
    global ENUM_MAX
    size = 99
    OFFSET_0 = ENUM_MAX + 0
    OFFSET_1 = ENUM_MAX + 1
    OFFSET_2 = ENUM_MAX + 2
    OFFSET_3 = ENUM_MAX + 3
    OFFSET_4 = ENUM_MAX + 4
    OFFSET_5 = ENUM_MAX + 5
    OFFSET_6 = ENUM_MAX + 6
    OFFSET_7 = ENUM_MAX + 7
    OFFSET_8 = ENUM_MAX + 8
    OFFSET_9 = ENUM_MAX + 9
    OFFSET_10 = ENUM_MAX + 10
    OFFSET_11 = ENUM_MAX + 11
    OFFSET_12 = ENUM_MAX + 12
    OFFSET_13 = ENUM_MAX + 13
    OFFSET_14 = ENUM_MAX + 14
    OFFSET_15 = ENUM_MAX + 15
    OFFSET_16 = ENUM_MAX + 16
    OFFSET_17 = ENUM_MAX + 17
    OFFSET_18 = ENUM_MAX + 18
    OFFSET_19 = ENUM_MAX + 19
    OFFSET_20 = ENUM_MAX + 20
    OFFSET_21 = ENUM_MAX + 21
    OFFSET_22 = ENUM_MAX + 22
    OFFSET_23 = ENUM_MAX + 23
    OFFSET_24 = ENUM_MAX + 24
    OFFSET_25 = ENUM_MAX + 25
    OFFSET_26 = ENUM_MAX + 26
    OFFSET_27 = ENUM_MAX + 27
    OFFSET_28 = ENUM_MAX + 28
    OFFSET_29 = ENUM_MAX + 29
    OFFSET_30 = ENUM_MAX + 30
    OFFSET_31 = ENUM_MAX + 31
    OFFSET_32 = ENUM_MAX + 32
    OFFSET_33 = ENUM_MAX + 33
    OFFSET_34 = ENUM_MAX + 34
    OFFSET_35 = ENUM_MAX + 35
    OFFSET_36 = ENUM_MAX + 36
    OFFSET_37 = ENUM_MAX + 37
    OFFSET_38 = ENUM_MAX + 38
    OFFSET_39 = ENUM_MAX + 39
    OFFSET_40 = ENUM_MAX + 40
    OFFSET_41 = ENUM_MAX + 41
    OFFSET_42 = ENUM_MAX + 42
    OFFSET_43 = ENUM_MAX + 43
    OFFSET_44 = ENUM_MAX + 44
    OFFSET_45 = ENUM_MAX + 45
    OFFSET_46 = ENUM_MAX + 46
    OFFSET_47 = ENUM_MAX + 47
    OFFSET_48 = ENUM_MAX + 48
    OFFSET_49 = ENUM_MAX + 49
    OFFSET_50 = ENUM_MAX + 50
    OFFSET_51 = ENUM_MAX + 51
    OFFSET_52 = ENUM_MAX + 52
    OFFSET_53 = ENUM_MAX + 53
    OFFSET_54 = ENUM_MAX + 54
    OFFSET_55 = ENUM_MAX + 55
    OFFSET_56 = ENUM_MAX + 56
    OFFSET_57 = ENUM_MAX + 57
    OFFSET_58 = ENUM_MAX + 58
    OFFSET_59 = ENUM_MAX + 59
    OFFSET_60 = ENUM_MAX + 60
    OFFSET_61 = ENUM_MAX + 61
    OFFSET_62 = ENUM_MAX + 62
    OFFSET_63 = ENUM_MAX + 63
    OFFSET_64 = ENUM_MAX + 64
    OFFSET_65 = ENUM_MAX + 65
    OFFSET_66 = ENUM_MAX + 66
    OFFSET_67 = ENUM_MAX + 67
    OFFSET_68 = ENUM_MAX + 68
    OFFSET_69 = ENUM_MAX + 69
    OFFSET_70 = ENUM_MAX + 70
    OFFSET_71 = ENUM_MAX + 71
    OFFSET_72 = ENUM_MAX + 72
    OFFSET_73 = ENUM_MAX + 73
    OFFSET_74 = ENUM_MAX + 74
    OFFSET_75 = ENUM_MAX + 75
    OFFSET_76 = ENUM_MAX + 76
    OFFSET_77 = ENUM_MAX + 77
    OFFSET_78 = ENUM_MAX + 78
    OFFSET_79 = ENUM_MAX + 79
    OFFSET_80 = ENUM_MAX + 80
    OFFSET_81 = ENUM_MAX + 81
    OFFSET_82 = ENUM_MAX + 82
    OFFSET_83 = ENUM_MAX + 83
    OFFSET_84 = ENUM_MAX + 84
    OFFSET_85 = ENUM_MAX + 85
    OFFSET_86 = ENUM_MAX + 86
    OFFSET_87 = ENUM_MAX + 87
    OFFSET_88 = ENUM_MAX + 88
    OFFSET_89 = ENUM_MAX + 89
    OFFSET_90 = ENUM_MAX + 90
    OFFSET_91 = ENUM_MAX + 91
    OFFSET_92 = ENUM_MAX + 92
    OFFSET_93 = ENUM_MAX + 93
    OFFSET_94 = ENUM_MAX + 94
    OFFSET_95 = ENUM_MAX + 95
    OFFSET_96 = ENUM_MAX + 96
    OFFSET_97 = ENUM_MAX + 97
    OFFSET_98 = ENUM_MAX + 98
    ENUM_MAX += size

class NUMBER_OF_RA_PREAMBLES:
    '''
    '''
    global ENUM_MAX
    size = 16
    N4 = ENUM_MAX + 0
    N8 = ENUM_MAX + 1
    N12 = ENUM_MAX + 2
    N16 = ENUM_MAX + 3
    N20 = ENUM_MAX + 4
    N24 = ENUM_MAX + 5
    N28 = ENUM_MAX + 6
    N32 = ENUM_MAX + 7
    N36 = ENUM_MAX + 8
    N40 = ENUM_MAX + 9
    N44 = ENUM_MAX + 10
    N48 = ENUM_MAX + 11
    N52 = ENUM_MAX + 12
    N56 = ENUM_MAX + 13
    N60 = ENUM_MAX + 14
    N64 = ENUM_MAX + 15
    ENUM_MAX += size

class SIZE_OF_RA_PREAMBLES_GROUP_A:
    '''
    '''
    global ENUM_MAX
    size = 15
    N4 = ENUM_MAX + 0
    N8 = ENUM_MAX + 1
    N12 = ENUM_MAX + 2
    N16 = ENUM_MAX + 3
    N20 = ENUM_MAX + 4
    N24 = ENUM_MAX + 5
    N28 = ENUM_MAX + 6
    N32 = ENUM_MAX + 7
    N36 = ENUM_MAX + 8
    N40 = ENUM_MAX + 9
    N44 = ENUM_MAX + 10
    N48 = ENUM_MAX + 11
    N52 = ENUM_MAX + 12
    N56 = ENUM_MAX + 13
    N60 = ENUM_MAX + 14
    ENUM_MAX += size

class MESSAGE_SIZE_GROUP_A:
    '''
    '''
    global ENUM_MAX
    size = 4
    b56, b144, b208, b256 = range(ENUM_MAX, ENUM_MAX+size)
    ENUM_MAX += size

class MESSAGE_POWER_OFFSET_GROUP_B:
    '''
    '''
    global ENUM_MAX
    size = 8
    minusinfinity, dB0, dB5, dB8, dB10, dB12, dB15, dB18 = range(ENUM_MAX, ENUM_MAX+size)
    ENUM_MAX += size

class RA_RESPONSE_WINDOW_SIZE:
    '''
    '''
    global ENUM_MAX
    size = 8
    sf2, sf3, sf4, sf5, sf6, sf7, sf8, sf10 = range(ENUM_MAX, ENUM_MAX+size)
    ENUM_MAX += size

class MAC_CONTENTION_RESOLUTION_TIMER:
    '''
    '''
    global ENUM_MAX
    size = 8
    sf8, sf16, sf24, sf32, sf40, sf48, sf56, sf64 = range(ENUM_MAX, ENUM_MAX+size)
    ENUM_MAX += size

class ROOT_SEQUENCE_INDEX:
    '''
    '''
    global ENUM_MAX
    size = 838
    INDEX_0 = ENUM_MAX + 0
    INDEX_1 = ENUM_MAX + 1
    INDEX_2 = ENUM_MAX + 2
    INDEX_3 = ENUM_MAX + 3
    INDEX_4 = ENUM_MAX + 4
    INDEX_5 = ENUM_MAX + 5
    INDEX_6 = ENUM_MAX + 6
    INDEX_7 = ENUM_MAX + 7
    INDEX_8 = ENUM_MAX + 8
    INDEX_9 = ENUM_MAX + 9
    INDEX_10 = ENUM_MAX + 10
    INDEX_11 = ENUM_MAX + 11
    INDEX_12 = ENUM_MAX + 12
    INDEX_13 = ENUM_MAX + 13
    INDEX_14 = ENUM_MAX + 14
    INDEX_15 = ENUM_MAX + 15
    INDEX_16 = ENUM_MAX + 16
    INDEX_17 = ENUM_MAX + 17
    INDEX_18 = ENUM_MAX + 18
    INDEX_19 = ENUM_MAX + 19
    INDEX_20 = ENUM_MAX + 20
    INDEX_21 = ENUM_MAX + 21
    INDEX_22 = ENUM_MAX + 22
    INDEX_23 = ENUM_MAX + 23
    INDEX_24 = ENUM_MAX + 24
    INDEX_25 = ENUM_MAX + 25
    INDEX_26 = ENUM_MAX + 26
    INDEX_27 = ENUM_MAX + 27
    INDEX_28 = ENUM_MAX + 28
    INDEX_29 = ENUM_MAX + 29
    INDEX_30 = ENUM_MAX + 30
    INDEX_31 = ENUM_MAX + 31
    INDEX_32 = ENUM_MAX + 32
    INDEX_33 = ENUM_MAX + 33
    INDEX_34 = ENUM_MAX + 34
    INDEX_35 = ENUM_MAX + 35
    INDEX_36 = ENUM_MAX + 36
    INDEX_37 = ENUM_MAX + 37
    INDEX_38 = ENUM_MAX + 38
    INDEX_39 = ENUM_MAX + 39
    INDEX_40 = ENUM_MAX + 40
    INDEX_41 = ENUM_MAX + 41
    INDEX_42 = ENUM_MAX + 42
    INDEX_43 = ENUM_MAX + 43
    INDEX_44 = ENUM_MAX + 44
    INDEX_45 = ENUM_MAX + 45
    INDEX_46 = ENUM_MAX + 46
    INDEX_47 = ENUM_MAX + 47
    INDEX_48 = ENUM_MAX + 48
    INDEX_49 = ENUM_MAX + 49
    INDEX_50 = ENUM_MAX + 50
    INDEX_51 = ENUM_MAX + 51
    INDEX_52 = ENUM_MAX + 52
    INDEX_53 = ENUM_MAX + 53
    INDEX_54 = ENUM_MAX + 54
    INDEX_55 = ENUM_MAX + 55
    INDEX_56 = ENUM_MAX + 56
    INDEX_57 = ENUM_MAX + 57
    INDEX_58 = ENUM_MAX + 58
    INDEX_59 = ENUM_MAX + 59
    INDEX_60 = ENUM_MAX + 60
    INDEX_61 = ENUM_MAX + 61
    INDEX_62 = ENUM_MAX + 62
    INDEX_63 = ENUM_MAX + 63
    INDEX_64 = ENUM_MAX + 64
    INDEX_65 = ENUM_MAX + 65
    INDEX_66 = ENUM_MAX + 66
    INDEX_67 = ENUM_MAX + 67
    INDEX_68 = ENUM_MAX + 68
    INDEX_69 = ENUM_MAX + 69
    INDEX_70 = ENUM_MAX + 70
    INDEX_71 = ENUM_MAX + 71
    INDEX_72 = ENUM_MAX + 72
    INDEX_73 = ENUM_MAX + 73
    INDEX_74 = ENUM_MAX + 74
    INDEX_75 = ENUM_MAX + 75
    INDEX_76 = ENUM_MAX + 76
    INDEX_77 = ENUM_MAX + 77
    INDEX_78 = ENUM_MAX + 78
    INDEX_79 = ENUM_MAX + 79
    INDEX_80 = ENUM_MAX + 80
    INDEX_81 = ENUM_MAX + 81
    INDEX_82 = ENUM_MAX + 82
    INDEX_83 = ENUM_MAX + 83
    INDEX_84 = ENUM_MAX + 84
    INDEX_85 = ENUM_MAX + 85
    INDEX_86 = ENUM_MAX + 86
    INDEX_87 = ENUM_MAX + 87
    INDEX_88 = ENUM_MAX + 88
    INDEX_89 = ENUM_MAX + 89
    INDEX_90 = ENUM_MAX + 90
    INDEX_91 = ENUM_MAX + 91
    INDEX_92 = ENUM_MAX + 92
    INDEX_93 = ENUM_MAX + 93
    INDEX_94 = ENUM_MAX + 94
    INDEX_95 = ENUM_MAX + 95
    INDEX_96 = ENUM_MAX + 96
    INDEX_97 = ENUM_MAX + 97
    INDEX_98 = ENUM_MAX + 98
    INDEX_99 = ENUM_MAX + 99
    INDEX_100 = ENUM_MAX + 100
    INDEX_101 = ENUM_MAX + 101
    INDEX_102 = ENUM_MAX + 102
    INDEX_103 = ENUM_MAX + 103
    INDEX_104 = ENUM_MAX + 104
    INDEX_105 = ENUM_MAX + 105
    INDEX_106 = ENUM_MAX + 106
    INDEX_107 = ENUM_MAX + 107
    INDEX_108 = ENUM_MAX + 108
    INDEX_109 = ENUM_MAX + 109
    INDEX_110 = ENUM_MAX + 110
    INDEX_111 = ENUM_MAX + 111
    INDEX_112 = ENUM_MAX + 112
    INDEX_113 = ENUM_MAX + 113
    INDEX_114 = ENUM_MAX + 114
    INDEX_115 = ENUM_MAX + 115
    INDEX_116 = ENUM_MAX + 116
    INDEX_117 = ENUM_MAX + 117
    INDEX_118 = ENUM_MAX + 118
    INDEX_119 = ENUM_MAX + 119
    INDEX_120 = ENUM_MAX + 120
    INDEX_121 = ENUM_MAX + 121
    INDEX_122 = ENUM_MAX + 122
    INDEX_123 = ENUM_MAX + 123
    INDEX_124 = ENUM_MAX + 124
    INDEX_125 = ENUM_MAX + 125
    INDEX_126 = ENUM_MAX + 126
    INDEX_127 = ENUM_MAX + 127
    INDEX_128 = ENUM_MAX + 128
    INDEX_129 = ENUM_MAX + 129
    INDEX_130 = ENUM_MAX + 130
    INDEX_131 = ENUM_MAX + 131
    INDEX_132 = ENUM_MAX + 132
    INDEX_133 = ENUM_MAX + 133
    INDEX_134 = ENUM_MAX + 134
    INDEX_135 = ENUM_MAX + 135
    INDEX_136 = ENUM_MAX + 136
    INDEX_137 = ENUM_MAX + 137
    INDEX_138 = ENUM_MAX + 138
    INDEX_139 = ENUM_MAX + 139
    INDEX_140 = ENUM_MAX + 140
    INDEX_141 = ENUM_MAX + 141
    INDEX_142 = ENUM_MAX + 142
    INDEX_143 = ENUM_MAX + 143
    INDEX_144 = ENUM_MAX + 144
    INDEX_145 = ENUM_MAX + 145
    INDEX_146 = ENUM_MAX + 146
    INDEX_147 = ENUM_MAX + 147
    INDEX_148 = ENUM_MAX + 148
    INDEX_149 = ENUM_MAX + 149
    INDEX_150 = ENUM_MAX + 150
    INDEX_151 = ENUM_MAX + 151
    INDEX_152 = ENUM_MAX + 152
    INDEX_153 = ENUM_MAX + 153
    INDEX_154 = ENUM_MAX + 154
    INDEX_155 = ENUM_MAX + 155
    INDEX_156 = ENUM_MAX + 156
    INDEX_157 = ENUM_MAX + 157
    INDEX_158 = ENUM_MAX + 158
    INDEX_159 = ENUM_MAX + 159
    INDEX_160 = ENUM_MAX + 160
    INDEX_161 = ENUM_MAX + 161
    INDEX_162 = ENUM_MAX + 162
    INDEX_163 = ENUM_MAX + 163
    INDEX_164 = ENUM_MAX + 164
    INDEX_165 = ENUM_MAX + 165
    INDEX_166 = ENUM_MAX + 166
    INDEX_167 = ENUM_MAX + 167
    INDEX_168 = ENUM_MAX + 168
    INDEX_169 = ENUM_MAX + 169
    INDEX_170 = ENUM_MAX + 170
    INDEX_171 = ENUM_MAX + 171
    INDEX_172 = ENUM_MAX + 172
    INDEX_173 = ENUM_MAX + 173
    INDEX_174 = ENUM_MAX + 174
    INDEX_175 = ENUM_MAX + 175
    INDEX_176 = ENUM_MAX + 176
    INDEX_177 = ENUM_MAX + 177
    INDEX_178 = ENUM_MAX + 178
    INDEX_179 = ENUM_MAX + 179
    INDEX_180 = ENUM_MAX + 180
    INDEX_181 = ENUM_MAX + 181
    INDEX_182 = ENUM_MAX + 182
    INDEX_183 = ENUM_MAX + 183
    INDEX_184 = ENUM_MAX + 184
    INDEX_185 = ENUM_MAX + 185
    INDEX_186 = ENUM_MAX + 186
    INDEX_187 = ENUM_MAX + 187
    INDEX_188 = ENUM_MAX + 188
    INDEX_189 = ENUM_MAX + 189
    INDEX_190 = ENUM_MAX + 190
    INDEX_191 = ENUM_MAX + 191
    INDEX_192 = ENUM_MAX + 192
    INDEX_193 = ENUM_MAX + 193
    INDEX_194 = ENUM_MAX + 194
    INDEX_195 = ENUM_MAX + 195
    INDEX_196 = ENUM_MAX + 196
    INDEX_197 = ENUM_MAX + 197
    INDEX_198 = ENUM_MAX + 198
    INDEX_199 = ENUM_MAX + 199
    INDEX_200 = ENUM_MAX + 200
    INDEX_201 = ENUM_MAX + 201
    INDEX_202 = ENUM_MAX + 202
    INDEX_203 = ENUM_MAX + 203
    INDEX_204 = ENUM_MAX + 204
    INDEX_205 = ENUM_MAX + 205
    INDEX_206 = ENUM_MAX + 206
    INDEX_207 = ENUM_MAX + 207
    INDEX_208 = ENUM_MAX + 208
    INDEX_209 = ENUM_MAX + 209
    INDEX_210 = ENUM_MAX + 210
    INDEX_211 = ENUM_MAX + 211
    INDEX_212 = ENUM_MAX + 212
    INDEX_213 = ENUM_MAX + 213
    INDEX_214 = ENUM_MAX + 214
    INDEX_215 = ENUM_MAX + 215
    INDEX_216 = ENUM_MAX + 216
    INDEX_217 = ENUM_MAX + 217
    INDEX_218 = ENUM_MAX + 218
    INDEX_219 = ENUM_MAX + 219
    INDEX_220 = ENUM_MAX + 220
    INDEX_221 = ENUM_MAX + 221
    INDEX_222 = ENUM_MAX + 222
    INDEX_223 = ENUM_MAX + 223
    INDEX_224 = ENUM_MAX + 224
    INDEX_225 = ENUM_MAX + 225
    INDEX_226 = ENUM_MAX + 226
    INDEX_227 = ENUM_MAX + 227
    INDEX_228 = ENUM_MAX + 228
    INDEX_229 = ENUM_MAX + 229
    INDEX_230 = ENUM_MAX + 230
    INDEX_231 = ENUM_MAX + 231
    INDEX_232 = ENUM_MAX + 232
    INDEX_233 = ENUM_MAX + 233
    INDEX_234 = ENUM_MAX + 234
    INDEX_235 = ENUM_MAX + 235
    INDEX_236 = ENUM_MAX + 236
    INDEX_237 = ENUM_MAX + 237
    INDEX_238 = ENUM_MAX + 238
    INDEX_239 = ENUM_MAX + 239
    INDEX_240 = ENUM_MAX + 240
    INDEX_241 = ENUM_MAX + 241
    INDEX_242 = ENUM_MAX + 242
    INDEX_243 = ENUM_MAX + 243
    INDEX_244 = ENUM_MAX + 244
    INDEX_245 = ENUM_MAX + 245
    INDEX_246 = ENUM_MAX + 246
    INDEX_247 = ENUM_MAX + 247
    INDEX_248 = ENUM_MAX + 248
    INDEX_249 = ENUM_MAX + 249
    INDEX_250 = ENUM_MAX + 250
    INDEX_251 = ENUM_MAX + 251
    INDEX_252 = ENUM_MAX + 252
    INDEX_253 = ENUM_MAX + 253
    INDEX_254 = ENUM_MAX + 254
    INDEX_255 = ENUM_MAX + 255
    INDEX_256 = ENUM_MAX + 256
    INDEX_257 = ENUM_MAX + 257
    INDEX_258 = ENUM_MAX + 258
    INDEX_259 = ENUM_MAX + 259
    INDEX_260 = ENUM_MAX + 260
    INDEX_261 = ENUM_MAX + 261
    INDEX_262 = ENUM_MAX + 262
    INDEX_263 = ENUM_MAX + 263
    INDEX_264 = ENUM_MAX + 264
    INDEX_265 = ENUM_MAX + 265
    INDEX_266 = ENUM_MAX + 266
    INDEX_267 = ENUM_MAX + 267
    INDEX_268 = ENUM_MAX + 268
    INDEX_269 = ENUM_MAX + 269
    INDEX_270 = ENUM_MAX + 270
    INDEX_271 = ENUM_MAX + 271
    INDEX_272 = ENUM_MAX + 272
    INDEX_273 = ENUM_MAX + 273
    INDEX_274 = ENUM_MAX + 274
    INDEX_275 = ENUM_MAX + 275
    INDEX_276 = ENUM_MAX + 276
    INDEX_277 = ENUM_MAX + 277
    INDEX_278 = ENUM_MAX + 278
    INDEX_279 = ENUM_MAX + 279
    INDEX_280 = ENUM_MAX + 280
    INDEX_281 = ENUM_MAX + 281
    INDEX_282 = ENUM_MAX + 282
    INDEX_283 = ENUM_MAX + 283
    INDEX_284 = ENUM_MAX + 284
    INDEX_285 = ENUM_MAX + 285
    INDEX_286 = ENUM_MAX + 286
    INDEX_287 = ENUM_MAX + 287
    INDEX_288 = ENUM_MAX + 288
    INDEX_289 = ENUM_MAX + 289
    INDEX_290 = ENUM_MAX + 290
    INDEX_291 = ENUM_MAX + 291
    INDEX_292 = ENUM_MAX + 292
    INDEX_293 = ENUM_MAX + 293
    INDEX_294 = ENUM_MAX + 294
    INDEX_295 = ENUM_MAX + 295
    INDEX_296 = ENUM_MAX + 296
    INDEX_297 = ENUM_MAX + 297
    INDEX_298 = ENUM_MAX + 298
    INDEX_299 = ENUM_MAX + 299
    INDEX_300 = ENUM_MAX + 300
    INDEX_301 = ENUM_MAX + 301
    INDEX_302 = ENUM_MAX + 302
    INDEX_303 = ENUM_MAX + 303
    INDEX_304 = ENUM_MAX + 304
    INDEX_305 = ENUM_MAX + 305
    INDEX_306 = ENUM_MAX + 306
    INDEX_307 = ENUM_MAX + 307
    INDEX_308 = ENUM_MAX + 308
    INDEX_309 = ENUM_MAX + 309
    INDEX_310 = ENUM_MAX + 310
    INDEX_311 = ENUM_MAX + 311
    INDEX_312 = ENUM_MAX + 312
    INDEX_313 = ENUM_MAX + 313
    INDEX_314 = ENUM_MAX + 314
    INDEX_315 = ENUM_MAX + 315
    INDEX_316 = ENUM_MAX + 316
    INDEX_317 = ENUM_MAX + 317
    INDEX_318 = ENUM_MAX + 318
    INDEX_319 = ENUM_MAX + 319
    INDEX_320 = ENUM_MAX + 320
    INDEX_321 = ENUM_MAX + 321
    INDEX_322 = ENUM_MAX + 322
    INDEX_323 = ENUM_MAX + 323
    INDEX_324 = ENUM_MAX + 324
    INDEX_325 = ENUM_MAX + 325
    INDEX_326 = ENUM_MAX + 326
    INDEX_327 = ENUM_MAX + 327
    INDEX_328 = ENUM_MAX + 328
    INDEX_329 = ENUM_MAX + 329
    INDEX_330 = ENUM_MAX + 330
    INDEX_331 = ENUM_MAX + 331
    INDEX_332 = ENUM_MAX + 332
    INDEX_333 = ENUM_MAX + 333
    INDEX_334 = ENUM_MAX + 334
    INDEX_335 = ENUM_MAX + 335
    INDEX_336 = ENUM_MAX + 336
    INDEX_337 = ENUM_MAX + 337
    INDEX_338 = ENUM_MAX + 338
    INDEX_339 = ENUM_MAX + 339
    INDEX_340 = ENUM_MAX + 340
    INDEX_341 = ENUM_MAX + 341
    INDEX_342 = ENUM_MAX + 342
    INDEX_343 = ENUM_MAX + 343
    INDEX_344 = ENUM_MAX + 344
    INDEX_345 = ENUM_MAX + 345
    INDEX_346 = ENUM_MAX + 346
    INDEX_347 = ENUM_MAX + 347
    INDEX_348 = ENUM_MAX + 348
    INDEX_349 = ENUM_MAX + 349
    INDEX_350 = ENUM_MAX + 350
    INDEX_351 = ENUM_MAX + 351
    INDEX_352 = ENUM_MAX + 352
    INDEX_353 = ENUM_MAX + 353
    INDEX_354 = ENUM_MAX + 354
    INDEX_355 = ENUM_MAX + 355
    INDEX_356 = ENUM_MAX + 356
    INDEX_357 = ENUM_MAX + 357
    INDEX_358 = ENUM_MAX + 358
    INDEX_359 = ENUM_MAX + 359
    INDEX_360 = ENUM_MAX + 360
    INDEX_361 = ENUM_MAX + 361
    INDEX_362 = ENUM_MAX + 362
    INDEX_363 = ENUM_MAX + 363
    INDEX_364 = ENUM_MAX + 364
    INDEX_365 = ENUM_MAX + 365
    INDEX_366 = ENUM_MAX + 366
    INDEX_367 = ENUM_MAX + 367
    INDEX_368 = ENUM_MAX + 368
    INDEX_369 = ENUM_MAX + 369
    INDEX_370 = ENUM_MAX + 370
    INDEX_371 = ENUM_MAX + 371
    INDEX_372 = ENUM_MAX + 372
    INDEX_373 = ENUM_MAX + 373
    INDEX_374 = ENUM_MAX + 374
    INDEX_375 = ENUM_MAX + 375
    INDEX_376 = ENUM_MAX + 376
    INDEX_377 = ENUM_MAX + 377
    INDEX_378 = ENUM_MAX + 378
    INDEX_379 = ENUM_MAX + 379
    INDEX_380 = ENUM_MAX + 380
    INDEX_381 = ENUM_MAX + 381
    INDEX_382 = ENUM_MAX + 382
    INDEX_383 = ENUM_MAX + 383
    INDEX_384 = ENUM_MAX + 384
    INDEX_385 = ENUM_MAX + 385
    INDEX_386 = ENUM_MAX + 386
    INDEX_387 = ENUM_MAX + 387
    INDEX_388 = ENUM_MAX + 388
    INDEX_389 = ENUM_MAX + 389
    INDEX_390 = ENUM_MAX + 390
    INDEX_391 = ENUM_MAX + 391
    INDEX_392 = ENUM_MAX + 392
    INDEX_393 = ENUM_MAX + 393
    INDEX_394 = ENUM_MAX + 394
    INDEX_395 = ENUM_MAX + 395
    INDEX_396 = ENUM_MAX + 396
    INDEX_397 = ENUM_MAX + 397
    INDEX_398 = ENUM_MAX + 398
    INDEX_399 = ENUM_MAX + 399
    INDEX_400 = ENUM_MAX + 400
    INDEX_401 = ENUM_MAX + 401
    INDEX_402 = ENUM_MAX + 402
    INDEX_403 = ENUM_MAX + 403
    INDEX_404 = ENUM_MAX + 404
    INDEX_405 = ENUM_MAX + 405
    INDEX_406 = ENUM_MAX + 406
    INDEX_407 = ENUM_MAX + 407
    INDEX_408 = ENUM_MAX + 408
    INDEX_409 = ENUM_MAX + 409
    INDEX_410 = ENUM_MAX + 410
    INDEX_411 = ENUM_MAX + 411
    INDEX_412 = ENUM_MAX + 412
    INDEX_413 = ENUM_MAX + 413
    INDEX_414 = ENUM_MAX + 414
    INDEX_415 = ENUM_MAX + 415
    INDEX_416 = ENUM_MAX + 416
    INDEX_417 = ENUM_MAX + 417
    INDEX_418 = ENUM_MAX + 418
    INDEX_419 = ENUM_MAX + 419
    INDEX_420 = ENUM_MAX + 420
    INDEX_421 = ENUM_MAX + 421
    INDEX_422 = ENUM_MAX + 422
    INDEX_423 = ENUM_MAX + 423
    INDEX_424 = ENUM_MAX + 424
    INDEX_425 = ENUM_MAX + 425
    INDEX_426 = ENUM_MAX + 426
    INDEX_427 = ENUM_MAX + 427
    INDEX_428 = ENUM_MAX + 428
    INDEX_429 = ENUM_MAX + 429
    INDEX_430 = ENUM_MAX + 430
    INDEX_431 = ENUM_MAX + 431
    INDEX_432 = ENUM_MAX + 432
    INDEX_433 = ENUM_MAX + 433
    INDEX_434 = ENUM_MAX + 434
    INDEX_435 = ENUM_MAX + 435
    INDEX_436 = ENUM_MAX + 436
    INDEX_437 = ENUM_MAX + 437
    INDEX_438 = ENUM_MAX + 438
    INDEX_439 = ENUM_MAX + 439
    INDEX_440 = ENUM_MAX + 440
    INDEX_441 = ENUM_MAX + 441
    INDEX_442 = ENUM_MAX + 442
    INDEX_443 = ENUM_MAX + 443
    INDEX_444 = ENUM_MAX + 444
    INDEX_445 = ENUM_MAX + 445
    INDEX_446 = ENUM_MAX + 446
    INDEX_447 = ENUM_MAX + 447
    INDEX_448 = ENUM_MAX + 448
    INDEX_449 = ENUM_MAX + 449
    INDEX_450 = ENUM_MAX + 450
    INDEX_451 = ENUM_MAX + 451
    INDEX_452 = ENUM_MAX + 452
    INDEX_453 = ENUM_MAX + 453
    INDEX_454 = ENUM_MAX + 454
    INDEX_455 = ENUM_MAX + 455
    INDEX_456 = ENUM_MAX + 456
    INDEX_457 = ENUM_MAX + 457
    INDEX_458 = ENUM_MAX + 458
    INDEX_459 = ENUM_MAX + 459
    INDEX_460 = ENUM_MAX + 460
    INDEX_461 = ENUM_MAX + 461
    INDEX_462 = ENUM_MAX + 462
    INDEX_463 = ENUM_MAX + 463
    INDEX_464 = ENUM_MAX + 464
    INDEX_465 = ENUM_MAX + 465
    INDEX_466 = ENUM_MAX + 466
    INDEX_467 = ENUM_MAX + 467
    INDEX_468 = ENUM_MAX + 468
    INDEX_469 = ENUM_MAX + 469
    INDEX_470 = ENUM_MAX + 470
    INDEX_471 = ENUM_MAX + 471
    INDEX_472 = ENUM_MAX + 472
    INDEX_473 = ENUM_MAX + 473
    INDEX_474 = ENUM_MAX + 474
    INDEX_475 = ENUM_MAX + 475
    INDEX_476 = ENUM_MAX + 476
    INDEX_477 = ENUM_MAX + 477
    INDEX_478 = ENUM_MAX + 478
    INDEX_479 = ENUM_MAX + 479
    INDEX_480 = ENUM_MAX + 480
    INDEX_481 = ENUM_MAX + 481
    INDEX_482 = ENUM_MAX + 482
    INDEX_483 = ENUM_MAX + 483
    INDEX_484 = ENUM_MAX + 484
    INDEX_485 = ENUM_MAX + 485
    INDEX_486 = ENUM_MAX + 486
    INDEX_487 = ENUM_MAX + 487
    INDEX_488 = ENUM_MAX + 488
    INDEX_489 = ENUM_MAX + 489
    INDEX_490 = ENUM_MAX + 490
    INDEX_491 = ENUM_MAX + 491
    INDEX_492 = ENUM_MAX + 492
    INDEX_493 = ENUM_MAX + 493
    INDEX_494 = ENUM_MAX + 494
    INDEX_495 = ENUM_MAX + 495
    INDEX_496 = ENUM_MAX + 496
    INDEX_497 = ENUM_MAX + 497
    INDEX_498 = ENUM_MAX + 498
    INDEX_499 = ENUM_MAX + 499
    INDEX_500 = ENUM_MAX + 500
    INDEX_501 = ENUM_MAX + 501
    INDEX_502 = ENUM_MAX + 502
    INDEX_503 = ENUM_MAX + 503
    INDEX_504 = ENUM_MAX + 504
    INDEX_505 = ENUM_MAX + 505
    INDEX_506 = ENUM_MAX + 506
    INDEX_507 = ENUM_MAX + 507
    INDEX_508 = ENUM_MAX + 508
    INDEX_509 = ENUM_MAX + 509
    INDEX_510 = ENUM_MAX + 510
    INDEX_511 = ENUM_MAX + 511
    INDEX_512 = ENUM_MAX + 512
    INDEX_513 = ENUM_MAX + 513
    INDEX_514 = ENUM_MAX + 514
    INDEX_515 = ENUM_MAX + 515
    INDEX_516 = ENUM_MAX + 516
    INDEX_517 = ENUM_MAX + 517
    INDEX_518 = ENUM_MAX + 518
    INDEX_519 = ENUM_MAX + 519
    INDEX_520 = ENUM_MAX + 520
    INDEX_521 = ENUM_MAX + 521
    INDEX_522 = ENUM_MAX + 522
    INDEX_523 = ENUM_MAX + 523
    INDEX_524 = ENUM_MAX + 524
    INDEX_525 = ENUM_MAX + 525
    INDEX_526 = ENUM_MAX + 526
    INDEX_527 = ENUM_MAX + 527
    INDEX_528 = ENUM_MAX + 528
    INDEX_529 = ENUM_MAX + 529
    INDEX_530 = ENUM_MAX + 530
    INDEX_531 = ENUM_MAX + 531
    INDEX_532 = ENUM_MAX + 532
    INDEX_533 = ENUM_MAX + 533
    INDEX_534 = ENUM_MAX + 534
    INDEX_535 = ENUM_MAX + 535
    INDEX_536 = ENUM_MAX + 536
    INDEX_537 = ENUM_MAX + 537
    INDEX_538 = ENUM_MAX + 538
    INDEX_539 = ENUM_MAX + 539
    INDEX_540 = ENUM_MAX + 540
    INDEX_541 = ENUM_MAX + 541
    INDEX_542 = ENUM_MAX + 542
    INDEX_543 = ENUM_MAX + 543
    INDEX_544 = ENUM_MAX + 544
    INDEX_545 = ENUM_MAX + 545
    INDEX_546 = ENUM_MAX + 546
    INDEX_547 = ENUM_MAX + 547
    INDEX_548 = ENUM_MAX + 548
    INDEX_549 = ENUM_MAX + 549
    INDEX_550 = ENUM_MAX + 550
    INDEX_551 = ENUM_MAX + 551
    INDEX_552 = ENUM_MAX + 552
    INDEX_553 = ENUM_MAX + 553
    INDEX_554 = ENUM_MAX + 554
    INDEX_555 = ENUM_MAX + 555
    INDEX_556 = ENUM_MAX + 556
    INDEX_557 = ENUM_MAX + 557
    INDEX_558 = ENUM_MAX + 558
    INDEX_559 = ENUM_MAX + 559
    INDEX_560 = ENUM_MAX + 560
    INDEX_561 = ENUM_MAX + 561
    INDEX_562 = ENUM_MAX + 562
    INDEX_563 = ENUM_MAX + 563
    INDEX_564 = ENUM_MAX + 564
    INDEX_565 = ENUM_MAX + 565
    INDEX_566 = ENUM_MAX + 566
    INDEX_567 = ENUM_MAX + 567
    INDEX_568 = ENUM_MAX + 568
    INDEX_569 = ENUM_MAX + 569
    INDEX_570 = ENUM_MAX + 570
    INDEX_571 = ENUM_MAX + 571
    INDEX_572 = ENUM_MAX + 572
    INDEX_573 = ENUM_MAX + 573
    INDEX_574 = ENUM_MAX + 574
    INDEX_575 = ENUM_MAX + 575
    INDEX_576 = ENUM_MAX + 576
    INDEX_577 = ENUM_MAX + 577
    INDEX_578 = ENUM_MAX + 578
    INDEX_579 = ENUM_MAX + 579
    INDEX_580 = ENUM_MAX + 580
    INDEX_581 = ENUM_MAX + 581
    INDEX_582 = ENUM_MAX + 582
    INDEX_583 = ENUM_MAX + 583
    INDEX_584 = ENUM_MAX + 584
    INDEX_585 = ENUM_MAX + 585
    INDEX_586 = ENUM_MAX + 586
    INDEX_587 = ENUM_MAX + 587
    INDEX_588 = ENUM_MAX + 588
    INDEX_589 = ENUM_MAX + 589
    INDEX_590 = ENUM_MAX + 590
    INDEX_591 = ENUM_MAX + 591
    INDEX_592 = ENUM_MAX + 592
    INDEX_593 = ENUM_MAX + 593
    INDEX_594 = ENUM_MAX + 594
    INDEX_595 = ENUM_MAX + 595
    INDEX_596 = ENUM_MAX + 596
    INDEX_597 = ENUM_MAX + 597
    INDEX_598 = ENUM_MAX + 598
    INDEX_599 = ENUM_MAX + 599
    INDEX_600 = ENUM_MAX + 600
    INDEX_601 = ENUM_MAX + 601
    INDEX_602 = ENUM_MAX + 602
    INDEX_603 = ENUM_MAX + 603
    INDEX_604 = ENUM_MAX + 604
    INDEX_605 = ENUM_MAX + 605
    INDEX_606 = ENUM_MAX + 606
    INDEX_607 = ENUM_MAX + 607
    INDEX_608 = ENUM_MAX + 608
    INDEX_609 = ENUM_MAX + 609
    INDEX_610 = ENUM_MAX + 610
    INDEX_611 = ENUM_MAX + 611
    INDEX_612 = ENUM_MAX + 612
    INDEX_613 = ENUM_MAX + 613
    INDEX_614 = ENUM_MAX + 614
    INDEX_615 = ENUM_MAX + 615
    INDEX_616 = ENUM_MAX + 616
    INDEX_617 = ENUM_MAX + 617
    INDEX_618 = ENUM_MAX + 618
    INDEX_619 = ENUM_MAX + 619
    INDEX_620 = ENUM_MAX + 620
    INDEX_621 = ENUM_MAX + 621
    INDEX_622 = ENUM_MAX + 622
    INDEX_623 = ENUM_MAX + 623
    INDEX_624 = ENUM_MAX + 624
    INDEX_625 = ENUM_MAX + 625
    INDEX_626 = ENUM_MAX + 626
    INDEX_627 = ENUM_MAX + 627
    INDEX_628 = ENUM_MAX + 628
    INDEX_629 = ENUM_MAX + 629
    INDEX_630 = ENUM_MAX + 630
    INDEX_631 = ENUM_MAX + 631
    INDEX_632 = ENUM_MAX + 632
    INDEX_633 = ENUM_MAX + 633
    INDEX_634 = ENUM_MAX + 634
    INDEX_635 = ENUM_MAX + 635
    INDEX_636 = ENUM_MAX + 636
    INDEX_637 = ENUM_MAX + 637
    INDEX_638 = ENUM_MAX + 638
    INDEX_639 = ENUM_MAX + 639
    INDEX_640 = ENUM_MAX + 640
    INDEX_641 = ENUM_MAX + 641
    INDEX_642 = ENUM_MAX + 642
    INDEX_643 = ENUM_MAX + 643
    INDEX_644 = ENUM_MAX + 644
    INDEX_645 = ENUM_MAX + 645
    INDEX_646 = ENUM_MAX + 646
    INDEX_647 = ENUM_MAX + 647
    INDEX_648 = ENUM_MAX + 648
    INDEX_649 = ENUM_MAX + 649
    INDEX_650 = ENUM_MAX + 650
    INDEX_651 = ENUM_MAX + 651
    INDEX_652 = ENUM_MAX + 652
    INDEX_653 = ENUM_MAX + 653
    INDEX_654 = ENUM_MAX + 654
    INDEX_655 = ENUM_MAX + 655
    INDEX_656 = ENUM_MAX + 656
    INDEX_657 = ENUM_MAX + 657
    INDEX_658 = ENUM_MAX + 658
    INDEX_659 = ENUM_MAX + 659
    INDEX_660 = ENUM_MAX + 660
    INDEX_661 = ENUM_MAX + 661
    INDEX_662 = ENUM_MAX + 662
    INDEX_663 = ENUM_MAX + 663
    INDEX_664 = ENUM_MAX + 664
    INDEX_665 = ENUM_MAX + 665
    INDEX_666 = ENUM_MAX + 666
    INDEX_667 = ENUM_MAX + 667
    INDEX_668 = ENUM_MAX + 668
    INDEX_669 = ENUM_MAX + 669
    INDEX_670 = ENUM_MAX + 670
    INDEX_671 = ENUM_MAX + 671
    INDEX_672 = ENUM_MAX + 672
    INDEX_673 = ENUM_MAX + 673
    INDEX_674 = ENUM_MAX + 674
    INDEX_675 = ENUM_MAX + 675
    INDEX_676 = ENUM_MAX + 676
    INDEX_677 = ENUM_MAX + 677
    INDEX_678 = ENUM_MAX + 678
    INDEX_679 = ENUM_MAX + 679
    INDEX_680 = ENUM_MAX + 680
    INDEX_681 = ENUM_MAX + 681
    INDEX_682 = ENUM_MAX + 682
    INDEX_683 = ENUM_MAX + 683
    INDEX_684 = ENUM_MAX + 684
    INDEX_685 = ENUM_MAX + 685
    INDEX_686 = ENUM_MAX + 686
    INDEX_687 = ENUM_MAX + 687
    INDEX_688 = ENUM_MAX + 688
    INDEX_689 = ENUM_MAX + 689
    INDEX_690 = ENUM_MAX + 690
    INDEX_691 = ENUM_MAX + 691
    INDEX_692 = ENUM_MAX + 692
    INDEX_693 = ENUM_MAX + 693
    INDEX_694 = ENUM_MAX + 694
    INDEX_695 = ENUM_MAX + 695
    INDEX_696 = ENUM_MAX + 696
    INDEX_697 = ENUM_MAX + 697
    INDEX_698 = ENUM_MAX + 698
    INDEX_699 = ENUM_MAX + 699
    INDEX_700 = ENUM_MAX + 700
    INDEX_701 = ENUM_MAX + 701
    INDEX_702 = ENUM_MAX + 702
    INDEX_703 = ENUM_MAX + 703
    INDEX_704 = ENUM_MAX + 704
    INDEX_705 = ENUM_MAX + 705
    INDEX_706 = ENUM_MAX + 706
    INDEX_707 = ENUM_MAX + 707
    INDEX_708 = ENUM_MAX + 708
    INDEX_709 = ENUM_MAX + 709
    INDEX_710 = ENUM_MAX + 710
    INDEX_711 = ENUM_MAX + 711
    INDEX_712 = ENUM_MAX + 712
    INDEX_713 = ENUM_MAX + 713
    INDEX_714 = ENUM_MAX + 714
    INDEX_715 = ENUM_MAX + 715
    INDEX_716 = ENUM_MAX + 716
    INDEX_717 = ENUM_MAX + 717
    INDEX_718 = ENUM_MAX + 718
    INDEX_719 = ENUM_MAX + 719
    INDEX_720 = ENUM_MAX + 720
    INDEX_721 = ENUM_MAX + 721
    INDEX_722 = ENUM_MAX + 722
    INDEX_723 = ENUM_MAX + 723
    INDEX_724 = ENUM_MAX + 724
    INDEX_725 = ENUM_MAX + 725
    INDEX_726 = ENUM_MAX + 726
    INDEX_727 = ENUM_MAX + 727
    INDEX_728 = ENUM_MAX + 728
    INDEX_729 = ENUM_MAX + 729
    INDEX_730 = ENUM_MAX + 730
    INDEX_731 = ENUM_MAX + 731
    INDEX_732 = ENUM_MAX + 732
    INDEX_733 = ENUM_MAX + 733
    INDEX_734 = ENUM_MAX + 734
    INDEX_735 = ENUM_MAX + 735
    INDEX_736 = ENUM_MAX + 736
    INDEX_737 = ENUM_MAX + 737
    INDEX_738 = ENUM_MAX + 738
    INDEX_739 = ENUM_MAX + 739
    INDEX_740 = ENUM_MAX + 740
    INDEX_741 = ENUM_MAX + 741
    INDEX_742 = ENUM_MAX + 742
    INDEX_743 = ENUM_MAX + 743
    INDEX_744 = ENUM_MAX + 744
    INDEX_745 = ENUM_MAX + 745
    INDEX_746 = ENUM_MAX + 746
    INDEX_747 = ENUM_MAX + 747
    INDEX_748 = ENUM_MAX + 748
    INDEX_749 = ENUM_MAX + 749
    INDEX_750 = ENUM_MAX + 750
    INDEX_751 = ENUM_MAX + 751
    INDEX_752 = ENUM_MAX + 752
    INDEX_753 = ENUM_MAX + 753
    INDEX_754 = ENUM_MAX + 754
    INDEX_755 = ENUM_MAX + 755
    INDEX_756 = ENUM_MAX + 756
    INDEX_757 = ENUM_MAX + 757
    INDEX_758 = ENUM_MAX + 758
    INDEX_759 = ENUM_MAX + 759
    INDEX_760 = ENUM_MAX + 760
    INDEX_761 = ENUM_MAX + 761
    INDEX_762 = ENUM_MAX + 762
    INDEX_763 = ENUM_MAX + 763
    INDEX_764 = ENUM_MAX + 764
    INDEX_765 = ENUM_MAX + 765
    INDEX_766 = ENUM_MAX + 766
    INDEX_767 = ENUM_MAX + 767
    INDEX_768 = ENUM_MAX + 768
    INDEX_769 = ENUM_MAX + 769
    INDEX_770 = ENUM_MAX + 770
    INDEX_771 = ENUM_MAX + 771
    INDEX_772 = ENUM_MAX + 772
    INDEX_773 = ENUM_MAX + 773
    INDEX_774 = ENUM_MAX + 774
    INDEX_775 = ENUM_MAX + 775
    INDEX_776 = ENUM_MAX + 776
    INDEX_777 = ENUM_MAX + 777
    INDEX_778 = ENUM_MAX + 778
    INDEX_779 = ENUM_MAX + 779
    INDEX_780 = ENUM_MAX + 780
    INDEX_781 = ENUM_MAX + 781
    INDEX_782 = ENUM_MAX + 782
    INDEX_783 = ENUM_MAX + 783
    INDEX_784 = ENUM_MAX + 784
    INDEX_785 = ENUM_MAX + 785
    INDEX_786 = ENUM_MAX + 786
    INDEX_787 = ENUM_MAX + 787
    INDEX_788 = ENUM_MAX + 788
    INDEX_789 = ENUM_MAX + 789
    INDEX_790 = ENUM_MAX + 790
    INDEX_791 = ENUM_MAX + 791
    INDEX_792 = ENUM_MAX + 792
    INDEX_793 = ENUM_MAX + 793
    INDEX_794 = ENUM_MAX + 794
    INDEX_795 = ENUM_MAX + 795
    INDEX_796 = ENUM_MAX + 796
    INDEX_797 = ENUM_MAX + 797
    INDEX_798 = ENUM_MAX + 798
    INDEX_799 = ENUM_MAX + 799
    INDEX_800 = ENUM_MAX + 800
    INDEX_801 = ENUM_MAX + 801
    INDEX_802 = ENUM_MAX + 802
    INDEX_803 = ENUM_MAX + 803
    INDEX_804 = ENUM_MAX + 804
    INDEX_805 = ENUM_MAX + 805
    INDEX_806 = ENUM_MAX + 806
    INDEX_807 = ENUM_MAX + 807
    INDEX_808 = ENUM_MAX + 808
    INDEX_809 = ENUM_MAX + 809
    INDEX_810 = ENUM_MAX + 810
    INDEX_811 = ENUM_MAX + 811
    INDEX_812 = ENUM_MAX + 812
    INDEX_813 = ENUM_MAX + 813
    INDEX_814 = ENUM_MAX + 814
    INDEX_815 = ENUM_MAX + 815
    INDEX_816 = ENUM_MAX + 816
    INDEX_817 = ENUM_MAX + 817
    INDEX_818 = ENUM_MAX + 818
    INDEX_819 = ENUM_MAX + 819
    INDEX_820 = ENUM_MAX + 820
    INDEX_821 = ENUM_MAX + 821
    INDEX_822 = ENUM_MAX + 822
    INDEX_823 = ENUM_MAX + 823
    INDEX_824 = ENUM_MAX + 824
    INDEX_825 = ENUM_MAX + 825
    INDEX_826 = ENUM_MAX + 826
    INDEX_827 = ENUM_MAX + 827
    INDEX_828 = ENUM_MAX + 828
    INDEX_829 = ENUM_MAX + 829
    INDEX_830 = ENUM_MAX + 830
    INDEX_831 = ENUM_MAX + 831
    INDEX_832 = ENUM_MAX + 832
    INDEX_833 = ENUM_MAX + 833
    INDEX_834 = ENUM_MAX + 834
    INDEX_835 = ENUM_MAX + 835
    INDEX_836 = ENUM_MAX + 836
    INDEX_837 = ENUM_MAX + 837
    ENUM_MAX += size

class PRACH_CONFIG_INDEX:
    '''
    '''
    global ENUM_MAX
    size = 64
    INDEX_0 = ENUM_MAX + 0
    INDEX_1 = ENUM_MAX + 1
    INDEX_2 = ENUM_MAX + 2
    INDEX_3 = ENUM_MAX + 3
    INDEX_4 = ENUM_MAX + 4
    INDEX_5 = ENUM_MAX + 5
    INDEX_6 = ENUM_MAX + 6
    INDEX_7 = ENUM_MAX + 7
    INDEX_8 = ENUM_MAX + 8
    INDEX_9 = ENUM_MAX + 9
    INDEX_10 = ENUM_MAX + 10
    INDEX_11 = ENUM_MAX + 11
    INDEX_12 = ENUM_MAX + 12
    INDEX_13 = ENUM_MAX + 13
    INDEX_14 = ENUM_MAX + 14
    INDEX_15 = ENUM_MAX + 15
    INDEX_16 = ENUM_MAX + 16
    INDEX_17 = ENUM_MAX + 17
    INDEX_18 = ENUM_MAX + 18
    INDEX_19 = ENUM_MAX + 19
    INDEX_20 = ENUM_MAX + 20
    INDEX_21 = ENUM_MAX + 21
    INDEX_22 = ENUM_MAX + 22
    INDEX_23 = ENUM_MAX + 23
    INDEX_24 = ENUM_MAX + 24
    INDEX_25 = ENUM_MAX + 25
    INDEX_26 = ENUM_MAX + 26
    INDEX_27 = ENUM_MAX + 27
    INDEX_28 = ENUM_MAX + 28
    INDEX_29 = ENUM_MAX + 29
    INDEX_30 = ENUM_MAX + 30
    INDEX_31 = ENUM_MAX + 31
    INDEX_32 = ENUM_MAX + 32
    INDEX_33 = ENUM_MAX + 33
    INDEX_34 = ENUM_MAX + 34
    INDEX_35 = ENUM_MAX + 35
    INDEX_36 = ENUM_MAX + 36
    INDEX_37 = ENUM_MAX + 37
    INDEX_38 = ENUM_MAX + 38
    INDEX_39 = ENUM_MAX + 39
    INDEX_40 = ENUM_MAX + 40
    INDEX_41 = ENUM_MAX + 41
    INDEX_42 = ENUM_MAX + 42
    INDEX_43 = ENUM_MAX + 43
    INDEX_44 = ENUM_MAX + 44
    INDEX_45 = ENUM_MAX + 45
    INDEX_46 = ENUM_MAX + 46
    INDEX_47 = ENUM_MAX + 47
    INDEX_48 = ENUM_MAX + 48
    INDEX_49 = ENUM_MAX + 49
    INDEX_50 = ENUM_MAX + 50
    INDEX_51 = ENUM_MAX + 51
    INDEX_52 = ENUM_MAX + 52
    INDEX_53 = ENUM_MAX + 53
    INDEX_54 = ENUM_MAX + 54
    INDEX_55 = ENUM_MAX + 55
    INDEX_56 = ENUM_MAX + 56
    INDEX_57 = ENUM_MAX + 57
    INDEX_58 = ENUM_MAX + 58
    INDEX_59 = ENUM_MAX + 59
    INDEX_60 = ENUM_MAX + 60
    INDEX_61 = ENUM_MAX + 61
    INDEX_62 = ENUM_MAX + 62
    INDEX_63 = ENUM_MAX + 63
    ENUM_MAX += size

class HIGH_SPEED_FLAG:
    '''
    '''
    global ENUM_MAX
    size = 2
    FALSE, TRUE = range(ENUM_MAX, ENUM_MAX+size)
    ENUM_MAX += size

class CFI:
    '''
    '''
    global ENUM_MAX
    size = 4
    CFI_1, CFI_2, CFI_3, CFI_4 = range(ENUM_MAX, ENUM_MAX+size)
    ENUM_MAX += size

class ZERO_CORRELATION_ZONE_CONFIG:
    '''
    '''
    global ENUM_MAX
    size = 16
    INDEX_0 = ENUM_MAX + 0
    INDEX_1 = ENUM_MAX + 1
    INDEX_2 = ENUM_MAX + 2
    INDEX_3 = ENUM_MAX + 3
    INDEX_4 = ENUM_MAX + 4
    INDEX_5 = ENUM_MAX + 5
    INDEX_6 = ENUM_MAX + 6
    INDEX_7 = ENUM_MAX + 7
    INDEX_8 = ENUM_MAX + 8
    INDEX_9 = ENUM_MAX + 9
    INDEX_10 = ENUM_MAX + 10
    INDEX_11 = ENUM_MAX + 11
    INDEX_12 = ENUM_MAX + 12
    INDEX_13 = ENUM_MAX + 13
    INDEX_14 = ENUM_MAX + 14
    INDEX_15 = ENUM_MAX + 15
    ENUM_MAX += size

class PRACH_FREQ_OFFSET:
    '''
    '''
    global ENUM_MAX
    size = 95
    OFFSET_0 = ENUM_MAX + 0
    OFFSET_1 = ENUM_MAX + 1
    OFFSET_2 = ENUM_MAX + 2
    OFFSET_3 = ENUM_MAX + 3
    OFFSET_4 = ENUM_MAX + 4
    OFFSET_5 = ENUM_MAX + 5
    OFFSET_6 = ENUM_MAX + 6
    OFFSET_7 = ENUM_MAX + 7
    OFFSET_8 = ENUM_MAX + 8
    OFFSET_9 = ENUM_MAX + 9
    OFFSET_10 = ENUM_MAX + 10
    OFFSET_11 = ENUM_MAX + 11
    OFFSET_12 = ENUM_MAX + 12
    OFFSET_13 = ENUM_MAX + 13
    OFFSET_14 = ENUM_MAX + 14
    OFFSET_15 = ENUM_MAX + 15
    OFFSET_16 = ENUM_MAX + 16
    OFFSET_17 = ENUM_MAX + 17
    OFFSET_18 = ENUM_MAX + 18
    OFFSET_19 = ENUM_MAX + 19
    OFFSET_20 = ENUM_MAX + 20
    OFFSET_21 = ENUM_MAX + 21
    OFFSET_22 = ENUM_MAX + 22
    OFFSET_23 = ENUM_MAX + 23
    OFFSET_24 = ENUM_MAX + 24
    OFFSET_25 = ENUM_MAX + 25
    OFFSET_26 = ENUM_MAX + 26
    OFFSET_27 = ENUM_MAX + 27
    OFFSET_28 = ENUM_MAX + 28
    OFFSET_29 = ENUM_MAX + 29
    OFFSET_30 = ENUM_MAX + 30
    OFFSET_31 = ENUM_MAX + 31
    OFFSET_32 = ENUM_MAX + 32
    OFFSET_33 = ENUM_MAX + 33
    OFFSET_34 = ENUM_MAX + 34
    OFFSET_35 = ENUM_MAX + 35
    OFFSET_36 = ENUM_MAX + 36
    OFFSET_37 = ENUM_MAX + 37
    OFFSET_38 = ENUM_MAX + 38
    OFFSET_39 = ENUM_MAX + 39
    OFFSET_40 = ENUM_MAX + 40
    OFFSET_41 = ENUM_MAX + 41
    OFFSET_42 = ENUM_MAX + 42
    OFFSET_43 = ENUM_MAX + 43
    OFFSET_44 = ENUM_MAX + 44
    OFFSET_45 = ENUM_MAX + 45
    OFFSET_46 = ENUM_MAX + 46
    OFFSET_47 = ENUM_MAX + 47
    OFFSET_48 = ENUM_MAX + 48
    OFFSET_49 = ENUM_MAX + 49
    OFFSET_50 = ENUM_MAX + 50
    OFFSET_51 = ENUM_MAX + 51
    OFFSET_52 = ENUM_MAX + 52
    OFFSET_53 = ENUM_MAX + 53
    OFFSET_54 = ENUM_MAX + 54
    OFFSET_55 = ENUM_MAX + 55
    OFFSET_56 = ENUM_MAX + 56
    OFFSET_57 = ENUM_MAX + 57
    OFFSET_58 = ENUM_MAX + 58
    OFFSET_59 = ENUM_MAX + 59
    OFFSET_60 = ENUM_MAX + 60
    OFFSET_61 = ENUM_MAX + 61
    OFFSET_62 = ENUM_MAX + 62
    OFFSET_63 = ENUM_MAX + 63
    OFFSET_64 = ENUM_MAX + 64
    OFFSET_65 = ENUM_MAX + 65
    OFFSET_66 = ENUM_MAX + 66
    OFFSET_67 = ENUM_MAX + 67
    OFFSET_68 = ENUM_MAX + 68
    OFFSET_69 = ENUM_MAX + 69
    OFFSET_70 = ENUM_MAX + 70
    OFFSET_71 = ENUM_MAX + 71
    OFFSET_72 = ENUM_MAX + 72
    OFFSET_73 = ENUM_MAX + 73
    OFFSET_74 = ENUM_MAX + 74
    OFFSET_75 = ENUM_MAX + 75
    OFFSET_76 = ENUM_MAX + 76
    OFFSET_77 = ENUM_MAX + 77
    OFFSET_78 = ENUM_MAX + 78
    OFFSET_79 = ENUM_MAX + 79
    OFFSET_80 = ENUM_MAX + 80
    OFFSET_81 = ENUM_MAX + 81
    OFFSET_82 = ENUM_MAX + 82
    OFFSET_83 = ENUM_MAX + 83
    OFFSET_84 = ENUM_MAX + 84
    OFFSET_85 = ENUM_MAX + 85
    OFFSET_86 = ENUM_MAX + 86
    OFFSET_87 = ENUM_MAX + 87
    OFFSET_88 = ENUM_MAX + 88
    OFFSET_89 = ENUM_MAX + 89
    OFFSET_90 = ENUM_MAX + 90
    OFFSET_91 = ENUM_MAX + 91
    OFFSET_92 = ENUM_MAX + 92
    OFFSET_93 = ENUM_MAX + 93
    OFFSET_94 = ENUM_MAX + 94
    ENUM_MAX += size